﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ABC_SA_WEB.WebServiceServicios;

namespace ABC_SA_WEB
{
    public partial class Formulario_web1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ddlCategoria.DataSource = Enum.GetValues(typeof(WebServiceServicios.EnumCategoriaServicios));
                ddlCategoria.DataBind();
                int idNum = Convert.ToInt32((string)(Session["servicio"]));
                string servicio = Convert.ToString(idNum);
                consultarDatos(servicio);
            }
        }

        protected void btnAgregar_Click(object sender, EventArgs e)
        {
            if (txtNombre.Text.CompareTo("") != 0 && txtMonto.Text.CompareTo("") != 0)
            {
                wsServicios serv = new wsServicios();
                double monto = Convert.ToDouble(txtMonto.Text);
                int categoria = ddlCategoria.SelectedIndex;
                string nombre = txtNombre.Text;

                bool cont = serv.crearServicio(nombre, categoria, monto);
                if (cont == true)
                {
                    mostrarMensaje("Servicio creado con exito");
                    limpiarCampos();
                }
                else
                {
                    mostrarMensaje("Error al crear el servicio");
                }
            }
        }

        protected void btnActualizar_Click(object sender, EventArgs e)
        {
            int idNum = Convert.ToInt32((string)(Session["servicio"]));
            wsServicios servicio = new wsServicios();
            bool cont = servicio.modificarServicio(idNum, txtNombre.Text, ddlCategoria.SelectedIndex, Convert.ToDouble(txtMonto.Text));

            if (cont == true)
            {
                mostrarMensaje("Servicio actualizado con exito");
            }
            else
            {
                mostrarMensaje("Error al actualizar el servicio");
            }
        }

        private void consultarDatos(string serv) {
            wsServicios servicios = new wsServicios();
            WebServiceServicios.Servicio s = servicios.consultarUnServicio(Convert.ToInt32(serv));
            
            if (s != null){
                txtMonto.Text = Convert.ToString(s.Monto);
                txtNombre.Text = s.Nombre;
                int cat = s.Categoria;

                if (txtNombre.Text.CompareTo("") != 0)
                {
                    btnAgregar.Enabled = false;
                }

                switch(cat){
                    case 0:
                        ddlCategoria.SelectedIndex = 0;
                        break;
                    case 1:
                        ddlCategoria.SelectedIndex = 1;
                        break;
                    case 2:
                        ddlCategoria.SelectedIndex = 2;
                        break;
                    case 3:
                        ddlCategoria.SelectedIndex = 3;
                        break;
                    case 4:
                        ddlCategoria.SelectedIndex = 4;
                        break;
                    default:
                        break;
                }
            }
        }

        //inicializa los campos despues de crear un nuevo servicio
        private void limpiarCampos() {
            txtNombre.Text = "";
            txtMonto.Text = "";
            ddlCategoria.SelectedIndex = 0;
        }

        //muestra un mensaje como popup
        private void mostrarMensaje(string mensaje)
        {
            string csname1 = "PopupScript";
            Type cstype = this.GetType();
            string cstext1 = Utilitario.mensajeJS(mensaje);
            ClientScript.RegisterStartupScript(cstype, csname1, cstext1);
        }        
    }
}